local List = require('java-core.utils.list')

local M = {}

M.required_cmds = List:new({
	'java.completion.onDidSelect',
	'java.decompile',
	'java.edit.handlePasteEvent',
	'java.edit.organizeImports',
	'java.edit.smartSemicolonDetection',
	'java.edit.stringFormatting',
	'java.getTroubleshootingInfo',
	'java.navigate.openTypeHierarchy',
	'java.navigate.resolveTypeHierarchy',
	'java.project.addToSourcePath',
	'java.project.changeImportedProjects',
	'java.project.createModuleInfo',
	'java.project.getAll',
	'java.project.getClasspaths',
	'java.project.getSettings',
	'java.project.import',
	'java.project.isTestFile',
	'java.project.listSourcePaths',
	'java.project.refreshDiagnostics',
	'java.project.removeFromSourcePath',
	'java.project.resolveSourceAttachment',
	'java.project.resolveStackTraceLocation',
	'java.project.resolveText',
	'java.project.resolveWorkspaceSymbol',
	'java.project.updateClassPaths',
	'java.project.updateJdk',
	'java.project.updateSettings',
	'java.project.updateSourceAttachment',
	'java.project.upgradeGradle',
	'java.protobuf.generateSources',
	'java.reloadBundles',
	'java.vm.getAllInstalls',
	'sts.java.addClasspathListener',
	'sts.java.code.completions',
	'sts.java.hierarchy.subtypes',
	'sts.java.hierarchy.supertypes',
	'sts.java.javadoc',
	'sts.java.javadocHoverLink',
	'sts.java.location',
	'sts.java.removeClasspathListener',
	'sts.java.search.packages',
	'sts.java.search.types',
	'sts.java.type',
	'sts.project.gav',
	'vscode.java.buildWorkspace',
	'vscode.java.checkProjectSettings',
	'vscode.java.fetchPlatformSettings',
	'vscode.java.fetchUsageData',
	'vscode.java.inferLaunchCommandLength',
	'vscode.java.isOnClasspath',
	'vscode.java.resolveBuildFiles',
	'vscode.java.resolveClassFilters',
	'vscode.java.resolveClasspath',
	'vscode.java.resolveElementAtSelection',
	'vscode.java.resolveInlineVariables',
	'vscode.java.resolveJavaExecutable',
	'vscode.java.resolveMainClass',
	'vscode.java.resolveMainMethod',
	'vscode.java.resolveSourceUri',
	'vscode.java.startDebugSession',
	'vscode.java.test.findDirectTestChildrenForClass',
	'vscode.java.test.findJavaProjects',
	'vscode.java.test.findTestLocation',
	'vscode.java.test.findTestPackagesAndTypes',
	'vscode.java.test.findTestTypesAndMethods',
	'vscode.java.test.generateTests',
	'vscode.java.test.get.testpath',
	'vscode.java.test.jacoco.getCoverageDetail',
	'vscode.java.test.junit.argument',
	'vscode.java.test.navigateToTestOrTarget',
	'vscode.java.test.resolvePath',
	'vscode.java.updateDebugSettings',
	'vscode.java.validateLaunchConfig',
})

return M
